public class CanCompleteCircuit {
    // https://leetcode.cn/problems/gas-station/description/
    class Solution {
        public int canCompleteCircuit(int[] gas, int[] cost) {


            //  如果 从 i 出发  走  j 个加油站  后 到达  （i + j）号站，此时油量小于0，
            // 那么从 i --》 i + j 这个区间的加油站都不能作为起始点，
            for(int i = 0 ; i < cost.length ; )
            {
                int j ;
                int rest = 0;
                for(j = 0 ; j < cost.length ; j ++ )
                {
                    int k = (i + j ) % cost.length;
                    rest += gas[k] - cost[k];
                    if(rest < 0) break;
                }

                if(j == cost.length) return i;
                i = i + j + 1;
            }
            return -1;


        }
    }
}
